package com.siwei.mes.service.erp;

import com.github.pagehelper.PageInfo;
import com.siwei.mes.common.query.PageQuery;
import com.siwei.mes.entity.dto.PrintRwdextraExperimentInfo;
import com.siwei.mes.entity.erp.Rwdextra;
import com.siwei.mes.entity.erp.RwdextraEntity;
import com.siwei.mes.entity.erp.RwdextraExtend;

import java.util.List;

/**
 * ERP-生产任务(Rwdextra)表服务接口
 *
 * @author linzi
 * @since 2024-07-29 16:13:33
 */
public interface RwdextraService {
    /**
     * 获取所有分组  分页
     *
     * @param query
     * @return
     */
    PageInfo<Rwdextra> getPage(PageQuery<Rwdextra, Rwdextra> query);

    /**
     * 根据任务单号查询
     *
     * @param frwdh
     * @return
     */
    Rwdextra loadByFrwdh(Integer frwdh);

    /**
     * 根据任务单号查询
     *
     * @param frwdh
     * @return
     */
    PrintRwdextraExperimentInfo selectExperimentByFrwdh(Integer frwdh);

    /**
     * 根据任务单号查询 品控任务单扩展信息
     *
     * @param frwdh
     * @return
     */
    RwdextraExtend loadByFrwdhExtend(Integer frwdh);

    /**
     * 获取所有
     *
     * @param entity
     * @return
     */
    List<Rwdextra> getAll(Rwdextra entity);

    /**
     * 根据任务单id获取信息
     *
     * @param fRwdh
     * @return
     */
    Rwdextra selectByFrwdh(Integer fRwdh);

    /**
     * 任务单上传上海协会数据
     *
     * @param entity
     * @return
     */
    void uploadBatch(RwdextraEntity entity);

    /**
     * 生成打印资料
     *
     * @param frwdList 任务单号集合
     */
    void genPrintInfo(List<Integer> frwdList);

    /**
     * 根据任务单号查询
     *
     * @param rwNo
     * @return
     */
    Rwdextra selectByRwNo(String rwNo);

    /**
     * 根据任务单号修改任务单扩展表绑定氯离子试验台账
     *
     * @return
     */
    void updateBatchPrintLlzhl();

    /**
     * 根据试验台账ID查询对应数据
     *
     * @return
     */
    List<PrintRwdextraExperimentInfo.ExperimentInfoVo> getPrintExperimentInfoVo(Object experimentId);

    /**
     * 根据 配合比编号 工程名称 年份查询任务单
     *
     * @param fPhbNo 配合比编号
     * @param fGcmc  工程名称
     * @param year   年份
     * @return
     */
    Rwdextra selectByPhbTop(String fPhbNo, String fGcmc, String year);

    /**
     * 根据工程名称查询符合条件的任务单
     *
     * @param projectNameList
     * @return
     */
    List<Rwdextra> selectIronMarkInfo(List<String> projectNameList, String materialSpecs);
}
